Флаги
O D I T S Z A P C ? * * * * *
Команда:
DAS
Логика:
if (AL & 0Fh) > 9 or (AF = 1) then AL = AL - 6 AF = 1 else AF = 0 if (AL > 9Fh) or (CF = 1) then AL = AL - 60h CF = 1 else CF = 0
Команда DAS корректирует результат предшествующего ей вычитания двух упакованных десятичных операндов (заметьте, что результат должен находиться в AL). Эта команда изменяет содержимое AL так, чтобы AL содержал пару упакованных десятичных цифр.
Операнды | Такт байты (слова) | Обращения | Байты | Пример |
нет операндов | 4 | - | 1 | DAS |
Примечания:
В упакованном двоично-десятичном коде каждому полубайту соответствует одна цифра; менее значащую цифру содержит младший полубайт. После деления или умножения чисел, записанных в упакованном двоично-десятичном коде, производить коррекцию нельзя. Поэтому, если Вы хотите воспользоваться операцией деления или умножения, то лучше использовать числа в неупакованном двоично-десятичном коде. См., например, описание команды AAM (ASCII-коррекция при умножении).